package cn.ryh.gat1400.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Author: aiLin
 * @Date: 2020/10/13 14:35
 * @desc: 图片对象
 */
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Image {

    /**图像标识*/
     @JsonProperty("ImageID")
    private  String imageId;

    /**信息分类,人工采集还是自动采集*/
     @JsonProperty("InfoKind")
    private  String infoKind;

    /**图像来源*/
     @JsonProperty("ImageSource")
    private  String imageSource;

    /**来源视频标识,如果此图像是视频截图，此字段是来源视频 的视频 ID*/
     @JsonProperty("SourceVideoID")
    private  String sourceVideoId;

    /**原始图像标识,图像增强处理输出图像对应的原始图像 ID，增强处理后图像必选*/
     @JsonProperty("OriginImageID")
    private  String originImageId;

    /**事件分类,自动分析事件类型，设备采集必选*/
     @JsonProperty("EventSort")
    private  String eventSort;

    /**设备编码,采集设备编码*/
     @JsonProperty("DeviceID")
    private  String deviceId;

    /**存储路径,图像文件的存储路径，采用 URI 命名规则*/
     @JsonProperty("StoragePath")
    private  String storagePath;

    /**图像文件哈希值,使用 MD5 算法*/
     @JsonProperty("FileHash")
    private  String fileHash;

    /**图像文件格式*/
     @JsonProperty("FileFormat")
    private  String fileFormat;

    /**拍摄时间*/
     @JsonProperty("ShotTime")
    private  String shotTime;

    /**题名,图像资料名称的汉语描述*/
     @JsonProperty("Title")
    private  String title;

    /**题名补充,题名的补充和备注信息*/
     @JsonProperty("TitleNote")
    private  String titleNote;

    /**专项名,图像资料所属的专项名称*/
     @JsonProperty("SpecialIName")
    private  String specialiName;

    /**关键词,能够正确表述图像资料主要内容、具有检索 意义的词或词组*/
     @JsonProperty("Keyword")
    private  String keyword;

    /**内容描述,对图像内容的简要描述*/
     @JsonProperty("ContentDescription")
    private  String contentDescription;

    /**主题人物,图像资料内出现的主要人物的中文姓名全称， 当有多个时用英文半角分号”;”分隔*/
     @JsonProperty("SubjectCharacter")
    private  String subjectCharacter;

    /**拍摄地点行政区划代码,人工采集图像才需要*/
     @JsonProperty("ShotPlaceCode")
    private  String shotPlaceCode;

    /**拍摄地点区划内详细地址,具体到街道门牌号，可以由乡镇（街道）名称、街路巷名称、门（楼）牌号、门（楼详 细地址）组成*/
     @JsonProperty("ShotPlaceFullAdres")
    private  String shotPlaceFullAdres;

    /**拍摄地点经度*/
     @JsonProperty("ShotPlaceLongitude")
    private  String shotPlaceLongitude;

    /**拍摄地点纬度*/
     @JsonProperty("ShotPlaceLatitude")
    private  String shotPlaceLatitude;

    /**水平拍摄方向*/
     @JsonProperty("HorizontalShotDirection")
    private  String horizontalShotDirection;

    /**垂直拍摄方向*/
     @JsonProperty("VerticalShotDirection")
    private  String verticalShotDirection;

    /**密级代码,自动采集时取值为 5*/
     @JsonProperty("SecurityLevel")
    private  String securityLevel;

    /**宽度,水平像素值*/
     @JsonProperty("Width")
    private  String width;

    /**高度,垂直像素值*/
     @JsonProperty("Height")
    private  String height;

    /**照相机制造商,若图像来源于照相机，则填写来源照相机的制造商*/
     @JsonProperty("CameraManufacturer")
    private  String cameraManufacturer;

    /**若图像来源于照相机，则填写来源照相机的型号*/
     @JsonProperty("CameraVersion")
    private  String cameraVersion;

    /**光圈值,光圈 F 值*/
     @JsonProperty("ApertureValue")
    private  int apertureValue;

    /**感光值,照片的 ISO 感光值*/
     @JsonProperty("ISOSensitivity")
    private  int isoSensitivity;

    /**焦距,拍摄照片使用的焦距*/
     @JsonProperty("FocalLength")
    private  int focalLength;

    /**质量等级*/
     @JsonProperty("QualityGrade")
    private  String qualityGrade;

    /**采集人,图像资料的采集人姓名或采集系统名称，人工采集必选*/
     @JsonProperty("CollectorName")
    private  String collectorName;

    /**采集单位名称,图像资料的采集单位名称，人工采集必选*/
     @JsonProperty("CollectorOrg")
    private  String collectorOrg;

    /**采集人证件类型,图像资料采集人的有效证件类型*/
     @JsonProperty("CollectorIDType")
    private  String collectorIDType;

    /**采集人证件号码,图像资料采集人的有效证件号码*/
     @JsonProperty("CollectorID")
    private  String collectorId;

    /**入库人,图像资料的入库人姓名或入库系统名称，人工采集必选*/
     @JsonProperty("EntryClerk")
    private  String entryClerk;

    /**入库单位名称,图像资料的入库单位名称，人工采集必选*/
     @JsonProperty("EntryClerkOrg")
    private  String entryClerkOrg;

    /**入库人证件类型,图像资料入库人的有效证件类型*/
     @JsonProperty("EntryClerkIDType")
    private  String entryClerkIDType;

    /**入库人证件号码,图像资料入库人的有效证件号码*/
     @JsonProperty("EntryClerkID")
    private  String entryClerkId;

    /**入库时间,视图库自动生成，创建报文中不需要该字段*/
     @JsonProperty("EntryTime")
    private  String entryTime;

    /**图像处理标志,0：未处理，1：图像经过处理*/
     @JsonProperty("ImageProcFlag")
    private  int imageProcFlag;

    /**文件大小,图像文件大小，单位 byte*/
     @JsonProperty("FileSize")
    private  long fileSize;

}
